package ln.javatest.day08.demo06;
/*
向上转型一定是安全的，没有问题的，但是也有一个弊端：
对象一旦向上转型称为父类，那么久无法调用子类原本特有的。

解决方案：用对象的向下转型【还原】
*/

public class Demo01Main {
    public static void main(String[] args) {
        //对象的向上转向，就是父类引用指向子类对象
        //本来创建的时候是一只猫
        Animal animal = new Cat();
        animal.eat(); //猫吃鱼
        //错误写法，catchMouse是子类特有的
        //animal.catchMouse();
        //向下转型，进行还原动作
        Cat cat = (Cat) animal;
        cat.catchMouse(); //猫捉老鼠。
        //下面是错误的向下转型
        //本来new的时候是一只猫，现在非要当做g狗
        //编译不报错，运行报错java.lang.ClassCastException,类转换异常
        //Dog dog = (Dog) animal;

    }
}
